Systems management software programs provide enterprise-wide administration of computer systems. Systems management typically involves at least some of the following processes: storage management: security management: hardware and software inventories: server availability and monitoring: software installation; network capacity and monitoring; security and anti-virus: etc. For example the IBM Tivoli Management Framework is a known systems management platform whose architecture enables the platform to manage large numbers of remote devices and processes within a distributed computer system (IBM and Tivoli are trademarks of International Business Machines Corporation).
A number of Tivoli products which operate within the Tivoli Management Framework employ more than one technology and programming language. Examples of such products are: Tivoli Netcool Performance Manager Wireless (TNPMW) which provides performance metrics to manage all aspects of a service provider's wireless network infrastructure; Tivoli Netcool Service Quality Manager (TNSQM) which enables service providers to monitor and report on the service quality delivered to their end customers; and IBM Tivoli Network Manager (ITNM) (formerly Netcool/Precision) which monitors the network to locate and report on problems as they develop thereby enabling network staff/administrators to resolve problems before they escalate to impact availability and performance of business services. These products may also have their own bespoke programming languages as well.
Modification of these products, for example to customise, or extend the products, where the products include scripts, formulae, plug ins etc., requires development in different programming languages and possibly in their bespoke programming languages. For example, to integrate Netcool/Provisio to new technologies, it is necessary to employ the bespoke SNMP formula language (Simple Network Management Protocol is used in network management systems to monitor attached devices for conditions that may require administrator attention), the Complex Matrix Engine (CME) formula language or the ECMAScript (JavaScript/JScript). Each of these languages has its own syntax.
Currently there are a number of Integrated Development Environments (IDEs) such as Eclipse (www.eclipse.org) and Software Development Kits (SDKs) (such as the Java Development Kit from IBM) which integrate access to software code for rapid application development and testing of customisations and extensions to existing products (Eclipse is a trademark of The Eclipse Foundation and Java is a trademark of Sun Corporation).
There are a number of problems associated with customisation and/or extension of software products operating within a computer system. For some products, it is sometimes necessary to carry out several change tasks and frequently such tasks are related to other tasks in different software products in different programming languages. Also, the bespoke programming languages themselves may undergo changes and revisions over time. A software engineer or programmer must know multiple programming languages and the learning curve for a new language is very steep. Also IDEs and SDKs are tightly coupled to particular programming languages and environments. This means that in order to edit two software components in different languages a software engineer is required to use multiple IDEs or SDKs
All of these problems increase the development complexity and the testing time significantly and have repercussions for all stages of software development including design and testing.